// src/main/java/com/cupk/dtos/FundingStatsDto.java (新增文件)

package com.cupk.dtos;

import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 用于封装经费统计信息的 DTO (Data Transfer Object)。
 * 这个 DTO 对应前端 api/funding.ts 中的 FundingStatsDto 接口。
 */
@Data
public class FundingStatsDto {

    // 核心统计数据
    private BigDecimal totalIncome;
    private BigDecimal totalExpense;
    private BigDecimal balance;

    // 按状态统计的金额
    private BigDecimal pendingAmount;
    private BigDecimal approvedAmount;
    private BigDecimal rejectedAmount;

    // 图表数据 - 月度收支趋势
    private List<MonthlyStat> monthlyStats;

    // 图表数据 - 按类别统计的支出
    private List<CategoryStat> categoryStats;

    /**
     * 月度统计内部类
     */
    @Data
    public static class MonthlyStat {
        private String month; // e.g., "2024-01"
        private BigDecimal income;
        private BigDecimal expense;
    }

    /**
     * 类别统计内部类
     */
    @Data
    public static class CategoryStat {
        private String category;
        private BigDecimal amount;
        private Double percentage; // 占总支出的百分比
    }
}